package com.xy.api.service.calculate.maori;

import com.xy.api.model.dto.calculate.maori.MaoriProductInstanceDTO;
import com.xy.api.model.request.calculate.maori.SubmitMaoriProductInstanceRequest;

import java.util.List;

public interface IMaoriProductInstanceService {

    /**
     * 查询项目的单项实例
     *
     * @param productId 项目ID
     * @return
     */
    List<MaoriProductInstanceDTO> queryProductInstanceList(Long productId);

    /**
     * 保存
     *
     * @param request
     */
    void saveProductInstance(SubmitMaoriProductInstanceRequest request);

    /**
     * 删除
     *
     * @param request
     */
    void deleteProductInstance(SubmitMaoriProductInstanceRequest request);

    /**
     * 核算
     *
     * @param costingProductId 项目ID
     */
    void calculate(Long costingProductId);

    /**
     * 查询核算的总的汇总
     *
     * @param productId
     * @return
     */
    MaoriProductInstanceDTO queryTotalInstance(Long productId);

    /**
     * 新增一个实例
     *
     * @param request
     */
    MaoriProductInstanceDTO addInstance(MaoriProductInstanceDTO request);
}
